package com.xuxueli.commontdemo.commont;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 支持日期格式枚举
 */
public enum DatePattern {

    ISO_SECOND("yyyy-MM-dd'T'HH:mm:ss", "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$"),
    ISO_MINUTE("yyyy-MM-dd'T'HH:mm", "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"),
    DATE_TIME("yyyy-MM-dd HH:mm:ss", "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"),
    DATE_ONLY("yyyy-MM-dd", "^\\d{4}-\\d{2}-\\d{2}$");

    DatePattern(String pattern, String regex){
        this.pattern = pattern;
        this.regex = regex;
    }

    public String getPattern() {
        return pattern;
    }
    public String getRegex() {
        return regex;
    }

    private String pattern;
    private String regex;

    /**
     * 根据日期字符串，判断该日期的格式类型。
     */
    public static String getPatternByDateStr(String dateStr){
        for (DatePattern df : DatePattern.values()) {
            Pattern pattern = Pattern.compile(df.regex);
            Matcher matcher = pattern.matcher(dateStr);
            if (matcher.find()) {
                return df.getPattern();
            }
        }
        return null;
    }
}
